#include <stdio.h>
#include <stdlib.h>
#include <esl.h>


int main(int argc, char*argv[])
{
	char	ip[256];
	char	temp[256];
	char	command[256];
	esl_handle_t handle		=	{{0}};
	esl_status_t	ret;
	
	printf("\n\n******************************************************************\n\n");

	if(argc != 2)
	{
		printf("Useage: ./testclient <server ip>\n");
		return -1;
	}

	sprintf(ip, "%s", argv[1]);

	ret		=	esl_connect(&handle, ip, 8021, NULL, "ClueCon");
	if(ret != ESL_SUCCESS){
		printf("\n\n------ Connect server failed ------\n\n");
		return -1;
	}

	while(fgets(temp, 255, stdin)){
		if(!strcmp(temp, "\n")){
			continue;
		}
		if(!strcmp(temp, "quit\n") || !strcmp(temp, "q\n")){
			break;
		}

		sprintf(command, "api %s\n", temp);
		esl_send_recv(&handle, command);

		if (handle.last_sr_event && handle.last_sr_event->body) {
			printf("%s\n", handle.last_sr_event->body);
		} else {
			// this is unlikely to happen with api or bgapi (which is hardcoded above) but prefix but may be true for other commands
			printf("%s\n", handle.last_sr_reply);
		}
	}
	esl_disconnect(&handle);
	printf("\n\n******************************************************************\n\n");
	
	return 0;
}
